package com.link.base.base.order.dao.mybatis.mapper;

import com.link.base.base.order.model.ArrivalDetails;
import com.link.base.base.order.model.SaleOrderItem;
import com.link.core.basic.dao.mapper.BasicMapper;

import java.util.List;

/**
 * @author unknown
 * @date unknown
 * @comments 订单商品行
 */
public interface SaleOrderItemMapper extends BasicMapper<SaleOrderItem> {

    /**
     * 更新订单行上的数量
     * @param record 商品订单行
     * @throws Exception
     */
    public void qtyUpdate(SaleOrderItem record) throws Exception;

    /**
     * 根据条件删除订单行信息
     *
     * @param itemExample 商品订单行
     * @throws Exception
     */
    public void deleteByOrderRuleProdId(SaleOrderItem itemExample) throws Exception;


    /**
     * 商品累计
     *
     * @param record 商品订单行
     */
    public void prodCumulateSale(SaleOrderItem record);

    /**
     * 根据orderId计算订单商品数量
     *
     * @param entity 商品订单行
     * @return
     */
    public int countByOrderId(SaleOrderItem entity);


    /**
     * 订单商品加
     *
     * @param entity 商品订单行
     * @return
     */
    public void prodCumulateSaleAdd(SaleOrderItem entity);

    /**
     * 订单商品减
     *
     * @param entity 商品订单行
     * @return
     */
    public void prodCumulateSaleSub(SaleOrderItem entity);

    /**
     * 订单商品减
     *
     * @param orderItemExample 商品订单行
     * @return List SaleOrderItem 商品订单行列表
     */
    public List<SaleOrderItem> querylistByOrderId(SaleOrderItem orderItemExample);

    /**
     * 到货订单详情
     *
     * @param ad 到货订单
     * @return List SaleOrderItem 到货订单列表
     */
    public List<ArrivalDetails> queryArriDetailsByPage(ArrivalDetails ad);

    /**
     * 查询当前登录导购某天产品销售情况
     *
     * @author Lizt
     * @param qop 商品订单行
     * @return List SaleOrderItem 商品订单行列表
     * @throws Exception
     */
    public List<SaleOrderItem> querySaleProduct(SaleOrderItem qop) throws Exception;
}
